home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Toolbox
/
Visual Basic Toolbox (P.I.E.)(1996).ISO
/
toolbar
/
toolbars
/
toolbar.txt
< prev
next >
Wrap
Text File
|
1992-02-11
|
8KB
|
147 lines
CREATING TOOLBARS IN VISUALBASIC
--------------------------------
By Stephen Murphy
CIS 70661,2461
This is intended for new users of VisualBasic who would like to add some
additional flair to thier programs. Adding a toolbar is a nice touch, and
it is not hard to do. Your finished toolbar can look as good, and be just as
functional as the ones found in Microsoft Excel and other first class
professional programs. Adding a toolbar requires no add-ons to VisualBasic.
You can do it all using VisualBasic and Paintbrush.
Creating the bar
----------------
The toolbar itself is a Picture Box with it's background color set to light grey.
It doesn't have to be grey, but this seems to be the standard color. It's border
style should be set to 1-Fixed Single.
Creating the buttons
--------------------
Within the bar (picture box) you have just created, create another picture box. That is
to say, use the mouse to draw the second box inside the first. If you just double-click
on the picture box tool, the second picture box will be created as part of the Form
rather than part of the first picture box. We want the second picture box to be
contained within the first. You will be able to tell if you succeeded by selecting
the new picture box and trying to move it; you should not be able to move it past
the limits of the first picture box.
Now set it's AutoSize property to True, and it's BorderStyle property to 0 - None.
Drawing the buttons
-------------------
Take a moment to look at the Windows buttons in front of you (on scroll bars, maximize
buttons, etc.) You will notice they have a slight white hi-lite across the left and
top, and a grey shadow across the bottom and right. When a button is pressed, this hi-lite
and shadow disappear, giving the illusion of movement. This little illusion is simple but
effective. The basic procedure is to create two pictures of each button you want.
One will have the shadow and hi-lite, the other will not. When the user presses the Mouse
button, quickly exhcange pictures, and it will look like the button has been
pressed. To get a better idea, use Paintbrush to view a couple of the buttons from
the ToolDemo program. You will notice they come in pairs: "blank_up.bmp" and "blank_dn.bmp".
One is a bitmap of the button in the up position, the other is a bitmap of the button
in the down position.
To view a couple of these bitmaps use Paintbrush. Don't use the Open File commands to view
them because that will give you a very small image that you can't even see. Rather, use
the Edit Paste From command to paste them into an empty sheet. Paste in both the bitmaps
"blank_up.bmp" and "blank_dn.bmp" and position them side by side on the screen so you
can compare them. Use the View Zoom In command to get a good look at them. Notice the single
line of white across the top and left, and the double line of dark grey across the right
and bottom on the Up button. On the Down button, the white is replaced by black, and
the dark grey shadow is simply removed. This little bit of shading creates the whole effect
of the button being "up" or "down".
When you add a picture to your button, the picture portion of the button has to move
a little to the right and down in your second, "down" button. In other words, centre the
picture on the button in the up position, and offset it a little on the down button. Paste
in a couple of the buttons with pictures on them (such as "writ1_up.bmp" and "writ1_dn.bmp")
and you will see what I mean. The picture has to move over and down a little to complete
the effect.
Saving your buttons in Painbrush
--------------------------------
Once you have drawn your buttons (you can draw them side by side on the same page) and
you're ready to try them out, you need to save them as separate bitmaps. To do this, you
will use the Paintbrush Edit Copy To command. First select your square scissors tool. Move
the cross-hairs just outside the top and left of your button. This part has to be exact since
you only want to cut out your button, and not the rest of the background. Tap your cursor
keys to move the cross-hairs right on the top-left corner of your button. You can tell
you are right over the edge of the desired cut-out because the bottom and right cross-hairs
will turn white. Then hold the mouse button down and use the cursor keys to move over and
down to select the rest of your button. Again, we don't want to include any of the background
in our button. You can tell when you are on the edge of your button because the
dotted line of the selection box will turn white. In the case of the bottom and right sides
however, you need to select one pixel beyond the point where the dotted lines turn white. Give
your right and down cursor buttons one tap so the dotted line turns black again. Having
selected your button without any background included, choose the Edit Copy To command
to save the cutout to it's own bitmap file.
Back in VisualBasic
-------------------
We created our second Picture Box and set its AutSize property to True. This means
the box will create its own size to accomodate the bitmap. Now, select its
Picture property, and assign your new "up" button to it. Your button should appear in all
its glory. Now we just have to add the code to activate the button. This is the easiest
part. If you want a button that stays down after it has been clicked, assign the code
to the Click procedure of the picture box that contains the button. If you want the button
to pop up again after the user releases the mouse button, assign the code to the MouseDown
and MouseUp procedures for the picture box that contains the button. The code for this
second type of button is as follows:
In the MouseDown event procedure, change the picture to your "down" button. For example,
Picture2.Picture=LoadPicture("button_dn.bmp")
In the MouseUp event procedure, change to the picture of your "up" button...
Picture2.Picture=LoadPicture("button_up.bmp")
That's all there is to it! If you want a button that stays down when clicked, place the
picture assignment code in the Picture_Click event procedure along with a flag that
keeps track of whether the button is currently up or down. Each time the button is clicked,
it will go either up or down:
If ButtonDownFlag = 0 Then
Picture2.Picture=LoadPicture("button_dn.bmp")
ButtonDownFlag = -1
Exit Sub
ElseIF ButtonDownFlag = -1 Then
Picture2.Picture=LoadPicture("button_up.bmp")
ButtonDownFlag = 0
Exit Sub
End IF
Have a look at the code for the demo included here. It will give you an idea of how simple
the process is, yet how effective the result can be. Of course don't forget to add the
code to take the action which the button represents (like changing the screen color, for
example).
Conclusion
----------
The process outlined here might seem a little complex, but once you have gone through it
it is quite simple and straight forward. My buttons in the demo are actually an array of
picture boxes which makes them easier to respond to and position. Thier Index property
determines which button was pressed, and a Select Case routine determines which picture
to display where. If you only have a couple of buttons, though, you don't really need an
array. The Form_Load procedure also does the work of positioning the toolbar on the
form and aligning the buttons inside it.
I do not profess to be a great programmer (reading through my code will tell you that!)
but I just wanted to share with you this simple but effective method that doesn't
require add-ons or additional purchases.
As you can see, you are limited only by your imagination. Good luck.